# $Id$
# Maintainer: Angel Velasquez <angvp@archlinux.org>
# Maintainer: Felix Yan <felixonmars@archlinux.org>

pkgbase=python-lxml
pkgname=('python-lxml' 'python2-lxml' 'python-lxml-docs')
pkgver=4.0.0
pkgrel=1
arch=('i686' 'x86_64')
license=('BSD' 'custom')
url="http://lxml.de/"
makedepends=('libxslt' 'python-setuptools' 'python2-setuptools')
checkdepends=('python-cssselect' 'python2-cssselect' # Broken: 'python-html5lib' 'python2-html5lib'
              'python-beautifulsoup4' 'python2-beautifulsoup4')
source=("https://pypi.io/packages/source/l/lxml/lxml-${pkgver}.tar.gz"{,.asc})
sha512sums=('8aa85ab6a99097ae2eaa0087b3a663aae8ac81a0a4d685bf857571c811c8ccd6410afc414f14c68702a53e90265726af085d0609ec7f0d3cc96e3702772627e8'
            'SKIP')
validpgpkeys=('1737D5FB8DACC53CA96A77AB0D3D536908D3A01E')  # Stefan Behnel

prepare() {
  cp -a lxml-$pkgver{,-py2}

  # Setting LC_CTYPE to workaround encoding issue
  export LC_CTYPE=en_US.UTF-8
}

build() {
  cd "$srcdir"/lxml-$pkgver
  python setup.py build

  cd "$srcdir"/lxml-$pkgver-py2
  python2 setup.py build
}

check() {
  # TODO: Find a sane way to skip inplace build

  cd "$srcdir"/lxml-$pkgver
  make PYTHON=python test

  cd "$srcdir"/lxml-$pkgver-py2
  make PYTHON=python2 test
}

package_python-lxml() {
  pkgdesc="Python3 binding for the libxml2 and libxslt libraries"
  depends=('python' 'libxslt')
  optdepends=('python-beautifulsoup4: support for beautifulsoup parser to parse not well formed HTML'
              'python-cssselect: support for cssselect'
              'python-html5lib: support for html5lib parser'
              'python-lxml-docs: offline docs')

  cd lxml-$pkgver
  python setup.py install --root="$pkgdir" --skip-build --optimize=1
  
  install -Dm644 LICENSES.txt \
    "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
  install -Dm644 doc/licenses/BSD.txt \
    "$pkgdir"/usr/share/licenses/$pkgname/BSD.txt
  install -Dm644 doc/licenses/elementtree.txt \
    "$pkgdir"/usr/share/licenses/$pkgname/elementtree.txt
}

package_python2-lxml() {
  pkgdesc="Python2 binding for the libxml2 and libxslt libraries"
  depends=('python2' 'libxslt')
  optdepends=('python2-beautifulsoup4: support for beautifulsoup parser to parse not well formed HTML'
              'python2-cssselect: support for cssselect'
              'python2-html5lib: support for html5lib parser'
              'python-lxml-docs: offline docs')

  cd lxml-$pkgver-py2
  python2 setup.py install --root="$pkgdir" --skip-build --optimize=1
 
  install -Dm644 LICENSES.txt \
    "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
  install -Dm644 doc/licenses/BSD.txt \
    "$pkgdir"/usr/share/licenses/$pkgname/BSD.txt
  install -Dm644 doc/licenses/elementtree.txt \
    "$pkgdir"/usr/share/licenses/$pkgname/elementtree.txt
}

package_python-lxml-docs() {
  pkgdesc="Python binding for the libxml2 and libxslt libraries (docs)"
  options=('docs')

  cd lxml-$pkgver
  install -d "$pkgdir"/usr/share/doc/$pkgbase
  cp -r doc/html "$pkgdir"/usr/share/doc/$pkgbase

  install -Dm644 LICENSES.txt \
    "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
  install -Dm644 doc/licenses/BSD.txt \
    "$pkgdir"/usr/share/licenses/$pkgname/BSD.txt
  install -Dm644 doc/licenses/elementtree.txt \
    "$pkgdir"/usr/share/licenses/$pkgname/elementtree.txt
}
